#ifndef DEBUG_H_
#define DEBUG_H_

#include <linux/ioctl.h>
#include <linux/cdev.h>

#ifdef PRINT_DEBUG

#define POSITION  1

#ifndef POSITION
#define PINFO(fmt ,args...) do{ printk( KERN_INFO fmt,\
                              ##args);}while(0)

#define PERROR(fmt ,args...) do{ printk( KERN_ERR fmt,\
                              ##args);}while(0)

#define PWARING(fmt ,args...) do{ printk( KERN_WARNING fmt,\
                              ##args);}while(0)

#define PRINT_POSITION()    

#else /* POSITION */

#define PINFO(fmt ,args...) do{ printk( KERN_INFO "file[%s][%d]func[%s]""\n"fmt,\
                              __FILE__,__LINE__,__FUNCTION__ , ##args);}while(0)

#define PERROR(fmt ,args...) do{ printk( KERN_ERR "file[%s][%d]func[%s]""\n"fmt,\
                              __FILE__,__LINE__,__FUNCTION__ , ##args);}while(0)

#define PWARING(fmt ,args...) do{ printk( KERN_WARNING "file[%s][%d]func[%s]""\n"fmt,\
                              __FILE__,__LINE__,__FUNCTION__ , ##args);}while(0)

#define PRINT_POSITION() do{ printk( KERN_WARNING "file[%s][%d]func[%s]""\n",\
                              __FILE__,__LINE__,__FUNCTION__ );}while(0)

#endif /* POSITION */



#else /* PRINT_DEBUG */

#define PINFO(fmt, args...)

#define PERROR(fmt, args...)

#define PWARING(fmt, args...)

#define PRINT_POSITION()    



#endif /* PRINT_DEBUG */



#define SAFE_KFREE(p)  do{ if(p!=NULL){ kfree(p); p=NULL; } }while(0)





#endif /* DEBUG_H_ */

